---
title: Policy minimum premium (stored procedure)
summary: Retrieves the policy minimum premium via an Oracle package procedure.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
operation_id: op-09-policy-minimum-premium
trigger: Caller invokes PolicyMinimumPremium
---

# Policy minimum premium (stored procedure)

Retrieves the minimum premium amount for a premium-history set via the Oracle package procedure `pk73069_rating_procs.get_minimum_expense_constant`.

| Field | Value |
| --- | --- |
| **Operation ID** | op-09-policy-minimum-premium |
| **Trigger** | Caller invokes `PolicyMinimumPremium` |
| **Inputs** | `IDataPortalInfo`, premium-history set id |
| **Outputs** | `Decimal` |
| **Primary components** | `PolicyInformation.PolicyMinimumPremium` |
| **Entry point** | SAIF.Business.Policy/PolicyInformation.vb |

## Steps

1. Build a request with `CommandType.StoredProcedure`, `RequestType = NonQuery`, `SQLStatement = "pk73069_rating_procs.get_minimum_expense_constant"` ([SQL-011](../sql/SQL-011-policy-minimum-premium.md), Oracle package procedure).
2. Bind `in_prem_hist_set_id` (input) and output parameters `out_minimum_premium_amount`, `out_expense_constant_amount`.
3. Execute inside `Try … Catch` with an **empty catch block** — any failure is silently swallowed ([BR-POL-008](../business-rules.md#br-pol-008-minimum-premium-fail-soft-behavior)).
4. If `DataRequest(0).Result` is not `Nothing`, read `ParmValue("out_minimum_premium_amount")` as `Decimal`; otherwise return `0`.
5. `out_expense_constant_amount` is bound but never read.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["Caller invokes<br>PolicyMinimumPremium"]) --> Build["Build StoredProcedure<br>request"]
	Build --> Bind["Bind in_prem_hist_set_id +<br>output parms"]
	Bind --> Try[Execute inside Try/Catch]
	Try --> Result{Result present?}
	Result -->|Yes| ReadOut["Read<br>out_minimum_premium_amount<br>as Decimal"]
	Result -->|No| Zero([Return 0])
	Try -->|Exception| Swallow["Empty catch — failure<br>silently swallowed"]
	Swallow --> Zero
	ReadOut --> Done([Return Decimal])
```

## Failure and edge-case behavior
- The call is wrapped in a `Try...Catch` with an **empty catch block**; any procedure failure is silently swallowed and the method returns `0` ([BR-POL-008](../business-rules.md#br-pol-008-minimum-premium-fail-soft-behavior)). The bound `out_expense_constant_amount` output parameter is never read back.*
- The premium/expense-constant calculation itself lives in Oracle package `pk73069_rating_procs`; its body was not retrieved for this run.**

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)
- [Stored procedures](../procedures/index.md)

## Sources
- `SAIF.Business.Policy/PolicyInformation.vb`
